-- @Author: baidwwy
-- @Date:   2023-12-04 08:54:39
-- @Last Modified by:   baidwwy
-- @Last Modified time: 2023-12-19 13:33:37

local 自动战斗设置 = class()
local insert = table.insert

function 自动战斗设置:初始化(根)
   self.ID = 59
	self.x = 370
	self.y = 80
	self.xx = 0
	self.yy = 0
	self.注释 = "自动战斗设置"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	self.右键关闭=false
	tp = 根
end


function 自动战斗设置:打开(技能组,操作类型)
	if self.可视 then
		self.可视 = false
	else
		insert(tp.窗口_,self)
		local 资源 = tp.资源
		local 按钮 = tp._按钮
		local 自适应 = tp._自适应
		tp.运行时间 = tp.运行时间 + 1
		self.窗口时间 = tp.运行时间
	  self.可视 = true
	  self.资源组 = {
			[1] = 自适应.创建(0,1,220,340,3,9),
			[2] = 按钮.创建(资源:载入('died.wdf',"网易WDF动画",0x00000001),0,0,4,59),
			[3] = 自适应.创建(1,1,178,26,1,3,nil,18),
		}
		self.技能 = {}
		self.偏移 = {0,0}
		local 格子 = tp._技能格子
		self.操作类型=操作类型
		for i=1,20 do
			self.技能[i] = 格子(0,0,i,"自动战斗技能设置")
		end
		self.技能[1]:置技能({等级=0,名称="普通攻击"},true)
		self.技能[2]:置技能({等级=0,名称="战斗防御"},true)
		self.技能[3]:置技能({等级=0,名称="暗器"},true)
		self.技能[4]:置技能({等级=0,名称="牛刀小试"},true)
		for w=5,20 do
			self.技能[w]:置技能(nil)
			if 技能组[w-4]~=nil then
				local 临时技能=require("script/内存类/技能")()
				临时技能:置对象(技能组[w-4].名称)
				local 临时等级=技能组[w-4].等级
				技能组[w-4]=临时技能
				技能组[w-4].等级=临时等级
				if 技能组[w-4].名称 ~= "牛刀小试" then
					self.技能[w]:置技能(技能组[w-4],true)
				end
			end
		end
	end
end
function 自动战斗设置:更新(dt)
end


function 自动战斗设置:显示(dt,x,y)
	self.焦点=false
	self.资源组[2]:更新1(鼠标.x,鼠标.y)
	self.资源组[1]:显示(self.x,self.y)
	self.资源组[3]:显示(self.x+1,self.y+1)
	if self.资源组[2]:事件判断() or self:检查点(x,y) and 引擎.鼠标弹起(右键) then
		self:打开()
		return false
	end
	self.资源组[2]:显示(self.x+190,self.y+3,true)
	local xx = 0
	local yy = 0
	for w=1,20 do
		tp.技能单格子_:显示(self.x+25+xx*68+self.偏移[1]-3,self.y+32+yy*42+self.偏移[2]-2)
		self.技能[w]:置坐标(self.x+25+xx*68+self.偏移[1],self.y+32+yy*42+self.偏移[2])
		self.技能[w]:显示(x,y,true or self.鼠标)
		if self.技能[w].技能 ~= nil and self.技能[w].焦点 then
			tp.提示:技能(x,y,self.技能[w].技能)
			if 引擎.鼠标弹起(左键) then
				if self.操作类型 == 0 then
					JGESDK:发送(60.2,{技能名称=self.技能[w].技能.名称})
				else
					JGESDK:发送(60.1,{技能名称=self.技能[w].技能.名称})
				end
				self:打开()
				return
			end
		end
		xx = xx + 1
		if xx > 2 then
			xx = 0
			yy = yy + 1
		end
	end
end

function 自动战斗设置:检查点(x,y)
	if self.可视 and self.资源组[1]:是否选中(x,y)  then
		return true
	else
		return false
	end
end
function 自动战斗设置:初始移动(x,y)
	tp.运行时间 = tp.运行时间 + 1
	if not tp.消息栏焦点 then
  		self.窗口时间 = tp.运行时间
 	end
	if not self.焦点 then
		tp.移动窗口 = true
	end
	if self.鼠标 and  not self.焦点 then
		self.xx = x - self.x
		self.yy = y - self.y
	end
end

function 自动战斗设置:开始移动(x,y)
	if self.鼠标 then
		self.x = x - self.xx
		self.y = y - self.yy
	end
end
return 自动战斗设置